package com.demo.springai.config;

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;

/**
 * AI配置类
 * 负责配置Spring AI相关的Bean和设置
 * 
 * 注意：这个版本使用Spring AI的自动配置，
 * 如果你需要自定义配置，请根据实际的Spring AI版本调整代码
 */
@Slf4j  // Lombok注解：自动生成日志对象
@Configuration  // Spring注解：标记为配置类
public class AiConfig {

    /**
     * OpenAI API密钥
     * 从application.yml配置文件中读取
     */
    @Value("${spring.ai.openai.api-key:your-openai-api-key-here}")
    private String openAiApiKey;

    /**
     * 检查API密钥配置状态
     */
    @Bean
    public String apiKeyStatus() {
        if (openAiApiKey == null || openAiApiKey.trim().isEmpty() || 
            "your-openai-api-key-here".equals(openAiApiKey)) {
            log.warn("OpenAI API密钥未正确配置！");
            log.warn("请在application.yml中设置spring.ai.openai.api-key");
            log.warn("当前将使用Spring AI的默认配置，某些功能可能不可用");
            return "NOT_CONFIGURED";
        }
        log.info("OpenAI API密钥配置检查通过");
        return "CONFIGURED";
    }

    /**
     * 检查AI服务是否可用
     * 
     * @return true if available
     */
    @Bean
    public boolean aiServiceAvailable() {
        return openAiApiKey != null && 
               !openAiApiKey.trim().isEmpty() && 
               !"your-openai-api-key-here".equals(openAiApiKey);
    }
}
